package main

import (
	"fmt"
	"sync"
	"time"
)

func setRetrive(c chan int) {
	for i := 0; i < 6; i++ {
		c <- i
	}
}
func main() {
	c := make(chan int, 6)
	setRetrive(c)
	var wg sync.WaitGroup
	//设置信息不会堵塞的
	wg.Add(6)
	for i := 0; i < 5; i++ {
		go func() {
			time.Sleep(time.Second)
		}()
	}

	go func() {
		for {
			wg.Wait()     //堵塞 等待全部完成
			setRetrive(c) //重新设置任务信息
			wg.Add(5)     //再次5个任务等待
		}

	}()
	for {
		<-c //读取信息 堵塞信息
		wg.Done()
		fmt.Println("22")
		fmt.Println("===================")
	}

}
